package com.glf.tool;

import cn.afterturn.easypoi.excel.entity.ImportParams;
import org.apache.poi.ss.usermodel.*;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

public class ExcelReader {
    public static void main(String[] args) throws Exception {
        // 导入参数设置
        ImportParams params = new ImportParams();
        
        // 指定要读取的Sheet索引或名称（默认为第1个）
        params.setStartSheetIndex(0);

        File excelFile = new File("D:\\wpkj\\以图管地数据\\清产核资\\走马镇测试数据\\走马镇千金村公示全部成果\\资源.xls");
        InputStream fileInStream = new FileInputStream(excelFile);
        // 加载Excel文件并将其转换为Workbook对象
        Workbook workbook = WorkbookFactory.create(fileInStream);
        
        // 根据工作表索引或名称获取Sheet对象
        Sheet sheet = workbook.getSheetAt(params.getStartSheetIndex());
        
        // 遍历所有行
        for (Row row : sheet) {
            // 创建一个空列表来存储当前行的字符串值
            List<Object> values = new ArrayList<>();
            
            // 遍历当前行的单元格
            for (Cell cell : row) {
                // 判断单元格类型并添加到values列表中
                switch (cell.getCellType()) {
                    case STRING:
                        values.add(cell.getStringCellValue());
                        break;
                    
                    case NUMERIC:
                        if (DateUtil.isCellDateFormatted(cell)) {
                            values.add(new SimpleDateFormat("yyyy-MM-dd").format(cell.getDateCellValue()));
                        } else {
                            values.add((int) cell.getNumericCellValue());
                        }
                        break;
                    
                    default:
                        values.add(null);
                        break;
                }
            }
            
            // 输出当前行的字符串值
            System.out.println(values);
        }
        
        // 关闭workbook
        workbook.close();
    }
}